package com.itlong.cloud.POJO.PO;

import com.itlong.cloud.annotation.ItlField;
import com.itlong.cloud.annotation.ItlTables;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import java.io.Serializable;

/**
 * <desc>
 *      与旺龙一卡通对接数据存储实体对象
 *      每个项目创建一个独立的push表(smartcard_push_cloud_projectId)，用于存储一卡通push云端的数据
 * </desc>
 *
 * @createDate 2017/11/01
 */
@ItlTables("smartcard_push_cloud_")
@Data
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class SmartCardPushPO extends BasePO implements Serializable{

    //项目Id
    @ItlField("project_id")
    private String projectId;

    //数据(JsonArray格式的字符串)
    @ItlField("sync_data")
    private String syncData;

    //用于同步表中数据去重(dataUuid中存储用于标识data唯一性的数据)
    @ItlField("data_uid")
    private String dataUid;

    //与旺龙一卡通同步的流水号
    @ItlField("sync_serial_no")
    private String syncSerialNo;

    //数据类型
    @ItlField("data_type")
    private Integer dataType;

    //数据操作类型 （1.update；2.delete；3.add）',
    @ItlField("data_oper_type")
    private Integer dataOperType;


    //与旺龙一卡通同步状态 0.无需同步；1.待同步；2.同步中;3.同步结束（可能同步成功或同步失败次数达上限）
    @ItlField("sync_status")
    private Integer syncStatus;

    //版本
    @ItlField("sync_version")
    private String syncVersion;

    //处理标识 0:已处理|1:未处理(在push表中定时任务数据解析时使用)
//    @ItlField("solve_mark")
//    private String solveMark;

    //动态数据表名 无需持久化
//    @ItlField("table_name")
//    private String tableName;

//    public SmartCardPushPO(String tableName) {
//        this.tableName = tableName;
//    }

    public SmartCardPushPO(String projectId, String syncData, String syncSerialNo, Integer dataType, Integer syncStatus) {
        this.projectId = projectId;
        this.syncData = syncData;
        this.syncSerialNo = syncSerialNo;
        this.dataType = dataType;
        this.syncStatus = syncStatus;
    }
}
